package com.yxy.system.service;

import org.springframework.web.multipart.MultipartFile;

import java.io.File;
import java.io.IOException;

public interface IFileStorageService {
    /**
     * 保存文件到临时区域
     * @param fileId 文件ID
     * @param file 上传的文件
     * @return 临时文件路径
     */
    String saveToTemp(String fileId, MultipartFile file) throws IOException;

    /**
     * 保存文件到临时区域
     * @param fileId 文件ID
     * @param localFilePath 本地文件路径
     * @return 临时文件路径
     */
    String saveToTemp(String fileId, String localFilePath) throws IOException;

    /**
     * 获取临时文件路径
     * @param fileId 文件ID
     * @return 临时文件路径
     */
    String getTempFilePath(String fileId);

    /**
     * 检查临时文件是否存在
     * @param fileId 文件ID
     * @return 是否存在
     */
    boolean existsInTemp(String fileId);

    /**
     * 删除临时文件
     * @param fileId 文件ID
     * @return 是否删除成功
     */
    boolean deleteFromTemp(String fileId);

    /**
     * 清理过期的临时文件
     * @param maxAgeHours 最大年龄（小时）
     * @return 删除的文件数量
     */
    int cleanupTempFiles(int maxAgeHours);

    /**
     * 获取临时文件
     * @param fileId 文件ID
     * @return 文件对象
     */
    File getTempFile(String fileId);

    /**
     * 获取临时文件大小
     * @param fileId 文件ID
     * @return 文件大小
     */
    long getTempFileSize(String fileId);
}
